This invention, in general, relates to text searching. More specifically, this invention relates to progressive relaxation of search terms provided by a user for finding matches of the search terms in a database.
Databases may contain large numbers of data records. Sometimes databases may contain millions of data records, each comprising multiple text fields, for example, name, street address, city, state, country, and zip. While searching the databases, the most relevant records for search terms in any given combination of the text fields should be found, for example, name and city only, name, street address, and zip, name, country, and zip, etc.
For example, if the search terms comprise name, street address, city, state, and zip data types, this task is typically done using the following approach: First, the database is searched to find records where all the fields match. If desired results are not found, then the database is searched for matches of name, street address, city, and state only. In the next iteration, name, street address, and city are searched, followed by name and street address, and finally, name only.
The approach described above is straight forward and does not take into account possible spelling errors by the user. Moreover, the approach described above only relaxes the constraints and does not consider different combinations of the fields or types of the search terms. Commercially available database management systems typically provide functions to perform these tasks; however the results returned require manual verification for finding accurate matches, which may be a cumbersome task, especially while searching multiple queries in batch mode.
Hence, there is a need for a computer implemented method and system that performs a fuzzy search by progressively relaxing search terms provided by a user while considering different combinations of the data fields and types of the search terms and eliminating the need for manual verification.